{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import json\n",
    "from jsonpath import jsonpath\n",
    "import pandas as pd\n",
    "import re\n",
    "import os\n",
    "import glob\n",
    "import pdfkit\n",
    "import imgkit\n",
    "import urllib.request\n",
    "from bs4 import BeautifulSoup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['./我的公众号JSON\\\\106_.json',\n",
       " './我的公众号JSON\\\\117_.json',\n",
       " './我的公众号JSON\\\\12_.json',\n",
       " './我的公众号JSON\\\\130_.json',\n",
       " './我的公众号JSON\\\\142_.json',\n",
       " './我的公众号JSON\\\\153_.json',\n",
       " './我的公众号JSON\\\\165_.json',\n",
       " './我的公众号JSON\\\\179_.json',\n",
       " './我的公众号JSON\\\\190_.json',\n",
       " './我的公众号JSON\\\\1_.json',\n",
       " './我的公众号JSON\\\\201_.json',\n",
       " './我的公众号JSON\\\\213_.json',\n",
       " './我的公众号JSON\\\\224_.json',\n",
       " './我的公众号JSON\\\\235_.json',\n",
       " './我的公众号JSON\\\\246_.json',\n",
       " './我的公众号JSON\\\\257_.json',\n",
       " './我的公众号JSON\\\\268_.json',\n",
       " './我的公众号JSON\\\\26_.json',\n",
       " './我的公众号JSON\\\\280_.json',\n",
       " './我的公众号JSON\\\\291_.json',\n",
       " './我的公众号JSON\\\\302_.json',\n",
       " './我的公众号JSON\\\\313_.json',\n",
       " './我的公众号JSON\\\\324_.json',\n",
       " './我的公众号JSON\\\\335_.json',\n",
       " './我的公众号JSON\\\\33_.json',\n",
       " './我的公众号JSON\\\\346_.json',\n",
       " './我的公众号JSON\\\\357_.json',\n",
       " './我的公众号JSON\\\\35_.json',\n",
       " './我的公众号JSON\\\\369_.json',\n",
       " './我的公众号JSON\\\\379_.json',\n",
       " './我的公众号JSON\\\\390_.json',\n",
       " './我的公众号JSON\\\\400_.json',\n",
       " './我的公众号JSON\\\\413_.json',\n",
       " './我的公众号JSON\\\\424_.json',\n",
       " './我的公众号JSON\\\\435_.json',\n",
       " './我的公众号JSON\\\\446_.json',\n",
       " './我的公众号JSON\\\\456_.json',\n",
       " './我的公众号JSON\\\\467_.json',\n",
       " './我的公众号JSON\\\\478_.json',\n",
       " './我的公众号JSON\\\\47_.json',\n",
       " './我的公众号JSON\\\\489_.json',\n",
       " './我的公众号JSON\\\\502_.json',\n",
       " './我的公众号JSON\\\\513_.json',\n",
       " './我的公众号JSON\\\\524_.json',\n",
       " './我的公众号JSON\\\\536_.json',\n",
       " './我的公众号JSON\\\\545_.json',\n",
       " './我的公众号JSON\\\\557_.json',\n",
       " './我的公众号JSON\\\\567_.json',\n",
       " './我的公众号JSON\\\\578_.json',\n",
       " './我的公众号JSON\\\\589_.json',\n",
       " './我的公众号JSON\\\\58_.json',\n",
       " './我的公众号JSON\\\\600_.json',\n",
       " './我的公众号JSON\\\\613_.json',\n",
       " './我的公众号JSON\\\\625_.json',\n",
       " './我的公众号JSON\\\\639_.json',\n",
       " './我的公众号JSON\\\\650_.json',\n",
       " './我的公众号JSON\\\\661_.json',\n",
       " './我的公众号JSON\\\\675_.json',\n",
       " './我的公众号JSON\\\\686_.json',\n",
       " './我的公众号JSON\\\\699_.json',\n",
       " './我的公众号JSON\\\\70_.json',\n",
       " './我的公众号JSON\\\\710_.json',\n",
       " './我的公众号JSON\\\\721_.json',\n",
       " './我的公众号JSON\\\\730_.json',\n",
       " './我的公众号JSON\\\\738_.json',\n",
       " './我的公众号JSON\\\\745_.json',\n",
       " './我的公众号JSON\\\\83_.json',\n",
       " './我的公众号JSON\\\\95_.json']"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 遍历文件夹下的 JSON 文件，循环读取内容\n",
    "folder_path = './我的公众号JSON'\n",
    "if not os.path.exists(folder_path):\n",
    "    os.makedirs(folder_path)\n",
    "file_form = '*.json'\n",
    "files_name = os.path.join(folder_path,file_form)\n",
    "all_files = glob.glob(files_name)\n",
    "all_files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda\\lib\\site-packages\\ipykernel_launcher.py:23: FutureWarning: The default value of regex will change from True to False in a future version. In addition, single character regular expressions will*not* be treated as literal strings when regex=True.\n",
      "D:\\ProgramData\\Anaconda\\lib\\site-packages\\ipykernel_launcher.py:27: FutureWarning: The default value of regex will change from True to False in a future version. In addition, single character regular expressions will*not* be treated as literal strings when regex=True.\n",
      "D:\\ProgramData\\Anaconda\\lib\\site-packages\\ipykernel_launcher.py:28: FutureWarning: The default value of regex will change from True to False in a future version. In addition, single character regular expressions will*not* be treated as literal strings when regex=True.\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>文章标题</th>\n",
       "      <th>网页链接</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>一日一技：如何为 Python 基本类型自定义方法？</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>如何改造 Scrapy 从而实现多网站大规模爬取？</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>一日一技：在 Golang 中如何快速判断字符串是否在一个数组中</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Python 为什么不支持 switch 语句？</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>为什么别人不想回答你提的问题？</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>530</th>\n",
       "      <td>Python 之父为什么嫌弃 lambda 匿名函数？</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>531</th>\n",
       "      <td>一日一技：除了 time.sleep，你还有一个暂停代码的方法</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>532</th>\n",
       "      <td>一日一技：如何从 URL 中快速提取域名？</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>533</th>\n",
       "      <td>为什么说 Python 内置函数并不是万能的？</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>534</th>\n",
       "      <td>10月22日晚来 B 站看我直播</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>505 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                 文章标题  \\\n",
       "1          一日一技：如何为 Python 基本类型自定义方法？   \n",
       "2           如何改造 Scrapy 从而实现多网站大规模爬取？   \n",
       "3    一日一技：在 Golang 中如何快速判断字符串是否在一个数组中   \n",
       "4            Python 为什么不支持 switch 语句？   \n",
       "5                     为什么别人不想回答你提的问题？   \n",
       "..                                ...   \n",
       "530       Python 之父为什么嫌弃 lambda 匿名函数？   \n",
       "531   一日一技：除了 time.sleep，你还有一个暂停代码的方法   \n",
       "532             一日一技：如何从 URL 中快速提取域名？   \n",
       "533           为什么说 Python 内置函数并不是万能的？   \n",
       "534                  10月22日晚来 B 站看我直播   \n",
       "\n",
       "                                                  网页链接  \n",
       "1    http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...  \n",
       "2    http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...  \n",
       "3    http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...  \n",
       "4    http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...  \n",
       "5    http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...  \n",
       "..                                                 ...  \n",
       "530  http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...  \n",
       "531  http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...  \n",
       "532  http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...  \n",
       "533  http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...  \n",
       "534  http://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ...  \n",
       "\n",
       "[505 rows x 2 columns]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 获取单个 JSON 文件中的 文章标题、网页链接  \n",
    "df = pd.DataFrame(columns=['文章标题','网页链接'])\n",
    "\n",
    "for file in all_files:\n",
    "\n",
    "    title_list = []\n",
    "    content_url_list = []\n",
    "\n",
    "    try:\n",
    "        json_data = json.load(open(file,'r',encoding='utf-8'))\n",
    "        data_list = json.loads(json_data['general_msg_list'])['list']\n",
    "        for data in data_list:           \n",
    "            title = data['app_msg_ext_info']['title']\n",
    "            content_url = data['app_msg_ext_info']['content_url']                   \n",
    "            title_list.append(title)\n",
    "            content_url_list.append(content_url)\n",
    "    except:\n",
    "        pass\n",
    "\n",
    "    df_json = pd.DataFrame({'文章标题':title_list,'网页链接':content_url_list})\n",
    "    df = pd.concat([df,df_json],ignore_index=True)\n",
    "\n",
    "df['文章标题'] = df['文章标题'].str.replace('|','-')\n",
    "df['文章标题'] = df['文章标题'].str.replace('/','-')\n",
    "df['文章标题'] = df['文章标题'].str.replace('\\n','')\n",
    "df['文章标题'] = df['文章标题'].str.replace('～','')\n",
    "df['文章标题'] = df['文章标题'].str.replace('*','')\n",
    "df['文章标题'] = df['文章标题'].str.replace('?','')\n",
    "df = df[df.文章标题.str.len() < 40]\n",
    "df = df[df.网页链接 != '']\n",
    "\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "一日一技：如何为 Python 基本类型自定义方法？ 网页保存成功！！\n",
      "如何改造 Scrapy 从而实现多网站大规模爬取？ 网页保存成功！！\n",
      "一日一技：在 Golang 中如何快速判断字符串是否在一个数组中 网页保存成功！！\n",
      "Python 为什么不支持 switch 语句？ 网页保存成功！！\n",
      "为什么别人不想回答你提的问题？ 网页保存成功！！\n",
      "一日一技：如何防止 Homebrew 自动升级和自动清理过期程序 网页保存成功！！\n",
      "Python 爬虫进阶必备 - 某指数分析平台解密逻辑分析 网页保存成功！！\n",
      "一日一技：在网页上如何获取鼠标当前指向的元素 网页保存成功！！\n",
      "奇技淫巧：在 ssh 里面把服务器的文本复制到本地电脑 网页保存成功！！\n",
      "一日一技：在Golang下如何相对简单地开发爬虫？ 网页保存成功！！\n",
      "一日一技：loguru 如何把不同的日志写入不同的文件中 网页保存成功！！\n",
      "~与产品经理度过的第二个生日~ 网页保存成功！！\n",
      "一日一技：导入父文件夹中的模块并读取当前文件夹内的资源 网页保存成功！！\n",
      "2020年非科班转行数据分析可行吗？ 网页保存成功！！\n",
      "一起读源码：为什么 loguru 的时间 rotation 不能只精确到天 网页保存成功！！\n",
      "今天在收拾行李准备离开杭州。休更三天。周日恢复。 网页保存成功！！\n",
      "手把手教学，如何解决 git 冲突？ 网页保存成功！！\n",
      "什么叫做类比，为什么有些 Python 入门教程结构不合理？ 网页保存成功！！\n",
      "一日一技：FastAPI如何关闭接口文档？ 网页保存成功！！\n",
      "现场打脸：如何使用Selenium批量上传文件？ 网页保存成功！！\n",
      "在 Python 中如何快速创建一个只读字典？ 网页保存成功！！\n",
      "我这几年踩过的十个坑，每一条都是血泪教训 网页保存成功！！\n",
      "Python不香吗？他竟然要转行…… 网页保存成功！！\n",
      "来了来了评上了2020-2021年度微软MVP。据说全国只有150多人。 网页保存成功！！\n",
      "爬虫工程师也应该会的 NodeJS 知识（三）- 快速抛弃 execjs 网页保存成功！！\n",
      "用个小技巧，趁你不备，rm -rf你的电脑 网页保存成功！！\n",
      "一日一技：pylint除了检查代码风格，还能做这件事情 网页保存成功！！\n",
      "大家七夕快乐 网页保存成功！！\n",
      "一日一技：用 Python 如何正确读取资源文件 网页保存成功！！\n",
      "这个 Python 知识点，90% 的人都得挂~ 网页保存成功！！\n",
      "一日一技：如何找到 MongoDB 占用空间最大的集合？ 网页保存成功！！\n",
      "一个在交流群里讨论过两轮的问题，答案竟然跟一个 PEP 有关 网页保存成功！！\n",
      "一日一技：更友好的格式化数据提取方案 网页保存成功！！\n",
      "「故事思维」会导致什么样的认知谬误？ 网页保存成功！！\n",
      "可能是你见过最好的工程师绘图指北！！！ 网页保存成功！！\n",
      "这样的奇技淫巧，劝你不用也罢 网页保存成功！！\n",
      "一日一技：使用异或寻找两个孤独的数 网页保存成功！！\n",
      "Python 爬虫进阶必备 - 关于某虚拟币网站加密签名的分析（难度0.1） 网页保存成功！！\n",
      "为什么GNE 不做全自动提取列表页的功能 网页保存成功！！\n",
      "举一反三：三种问题，两个指针，一种方法 网页保存成功！！\n",
      "一日一技：限定Python函数只能被特定函数调用 网页保存成功！！\n",
      "Python 为什么用 # 号作注释符？ 网页保存成功！！\n",
      "提速72倍，在Python里面调用Golang函数 网页保存成功！！\n",
      "JavaScript 混淆与逆向必读之 AST 节点类型名词基础 网页保存成功！！\n",
      "如何用数据讲生动的故事 网页保存成功！！\n",
      "在Scrapy中如何使用aiohttp？ 网页保存成功！！\n",
      "用Python的Plotly画出炫酷的数据可视化(含各类图介绍) 网页保存成功！！\n",
      "Python 为什么推荐蛇形命名法？ 网页保存成功！！\n",
      "一日一技：这个使用场景，etcd 比 Redis 强。 网页保存成功！！\n",
      "一日一技：如何手动打乱一个列表 网页保存成功！！\n",
      "一日一技：6小时速成PhotoShop 网页保存成功！！\n",
      "肝了三天，万字长文教你玩转 tcpdump，从此抓包不用愁 网页保存成功！！\n",
      "彻底搞懂Scrapy的中间件（二） 网页保存成功！！\n",
      "惊呆了，我的 Python 代码里面出现了薛定谔的 Bug 网页保存成功！！\n",
      "彻底搞懂Scrapy的中间件（一） 网页保存成功！！\n",
      "一日一技：如何从地址中提取省市区？ 网页保存成功！！\n",
      "Python爬虫进阶必备 - 关于某查猫查询参数的加密逻辑分析 网页保存成功！！\n",
      "化异为同，Python 在背后帮你做的转换 网页保存成功！！\n",
      "不用 JavaScript，纯静态网站如何统计 PV？ 网页保存成功！！\n",
      "JS逆向时碰到了恶心的死代码怎么办？手把手教你解决！ 网页保存成功！！\n",
      "一日一技：为 git commit 设置默认模板 网页保存成功！！\n",
      "可软可硬——从电路的角度做加法 网页保存成功！！\n",
      "逆转时间，起死回生——程序报错崩溃后，如何倒回到崩溃的位置？ 网页保存成功！！\n",
      "给 Python 初学者解答了无数遍的 Python 环境相关问题 网页保存成功！！\n",
      "Python 为什么没有 main 函数？为什么我不推荐写 main 函数？ 网页保存成功！！\n",
      "一日一技：这个数据库用起来刚刚好 网页保存成功！！\n",
      "这两周太忙了，公众号更新得有点水。明天就有时间正经更新一篇了。 网页保存成功！！\n",
      "跟肉丝姐学 Frida 之 快速搭建 Frida 安卓逆向环境 网页保存成功！！\n",
      "一日一技：你不知道的PyCharm命令行用法 网页保存成功！！\n",
      "Python 自带异步队列的大坑 网页保存成功！！\n",
      "如何实时主动监控你的网站接口是否挂掉并及时报警 网页保存成功！！\n",
      "JavaScript 逆向爬取实战（下） 网页保存成功！！\n",
      "关于《生成器运行时机导致的难以察觉的 bug》勘误 网页保存成功！！\n",
      "今年面试，这类求职者很值钱！ 网页保存成功！！\n",
      "JavaScript 逆向爬取实战 网页保存成功！！\n",
      "康熙部首导致的字典查询异常 网页保存成功！！\n",
      "刚刚下班，今天来不及更新了。明天补上。 网页保存成功！！\n",
      "一日一技：如何实现一个轻量插件系统 网页保存成功！！\n",
      "如何用简单的位操作实现高级算法 网页保存成功！！\n",
      "一日一技：为 pymongo 的批量插入功能进一步加速 网页保存成功！！\n",
      "一日一技：这个东西能给 Redis 插上火箭 网页保存成功！！\n",
      "为什么你会被限制登录网页版微信？ 网页保存成功！！\n",
      "APP爬虫-frida-某资讯app逆向过程 网页保存成功！！\n",
      "从零开发一个爬虫框架——Tinepeas 网页保存成功！！\n",
      "使用有限状态机原理实现英文分词 网页保存成功！！\n",
      "今天玩了实景剧本杀，配合高级剧本，代入感极强。 网页保存成功！！\n",
      "Python 装饰器装饰类中的方法 网页保存成功！！\n",
      "脱离苦海，从避免滥用try...except...开始 网页保存成功！！\n",
      "一日一技：让Python在退出时强制运行一段代码 网页保存成功！！\n",
      "进一步防止 Selenium 被检测——如何防止浏览器用新标签页打开链接？ 网页保存成功！！\n",
      "全能的上帝可以造出它举不起来的石头 网页保存成功！！\n",
      "Callback ——从同步思维切换到异步思维 网页保存成功！！\n",
      "如何使用闭包进行一次降维打击？ 网页保存成功！！\n",
      "不使用 if-elif 语句，如何优雅地判断某个数字所属的等级？ 网页保存成功！！\n",
      "一日一技：如何实现可热拔插的插件系统 网页保存成功！！\n",
      "创业的N种死法 网页保存成功！！\n",
      "一日一技：立竿见影地把你的 Python 代码提速7倍 网页保存成功！！\n",
      "如何根据二叉树的两种遍历方式重建二叉树（理论篇） 网页保存成功！！\n",
      "越早知道越好的决策陷阱 网页保存成功！！\n",
      "开发经验：如何正确设置开发环境与生产环境的配置参数 网页保存成功！！\n",
      "我为什么要创建一个不能被实例化的类 网页保存成功！！\n",
      "不写 XPath，照样轻轻松松抓取大部分博客 网页保存成功！！\n",
      "啊撑得一天就吃了这一顿 网页保存成功！！\n",
      "为了抓取弹幕，你需要知道的一些二进制数据常识 网页保存成功！！\n",
      "等一等，你的多线程可别再乱 join 了。 网页保存成功！！\n",
      "勘误，昨天文章中的知识性错误 网页保存成功！！\n",
      "Python异步与 JavaScript 原生异步有什么区别？ 网页保存成功！！\n",
      "Python 3.9 新特性：任意表达式可作为装饰器！ 网页保存成功！！\n",
      "Bytes型数据decode时是如何知道要把几位数据组合在一起的？ 网页保存成功！！\n",
      "如何给产品经理解释什么是 RSA 加密（二） 网页保存成功！！\n",
      "一日一技：如何防止微信朋友圈给你定向推送广告 网页保存成功！！\n",
      "Gne Online：通用新闻网页正文在线提取 网页保存成功！！\n",
      "为什么你用Scrapy 无法使用 Cookies登录 网页保存成功！！\n",
      "今晚休更，明天发文 网页保存成功！！\n",
      "如何给产品经理解释什么是 RSA 加密（一） 网页保存成功！！\n",
      "不看官方文档，这个问题你可能会束手无策 网页保存成功！！\n",
      "Bug or Feature？藏在 requests_html 中的陷阱 网页保存成功！！\n",
      "以为是高性能神仙算法，一看源代码才发现... 网页保存成功！！\n",
      "别怕，我们的聊天消息，没人能偷看 网页保存成功！！\n",
      "一日一技：在Python 的线程中运行协程 网页保存成功！！\n",
      "在 Linux-Mac 下为Python函数添加超时时间 网页保存成功！！\n",
      "一日一技：超级简单搭建更加稳定安全的文件分享服务器 网页保存成功！！\n",
      "大家情人节快乐快去过节吧 网页保存成功！！\n",
      "一日一技：不用游标卡尺，Yaml 格式5分钟入门 网页保存成功！！\n",
      "一日一技：在 Python 中实现延迟调用 网页保存成功！！\n",
      "一日一技：装饰器如何装饰异步函数 网页保存成功！！\n",
      "老婆大人生日快乐老婆大人天下第一 网页保存成功！！\n",
      "一日一技：如何使用弱引用优化 Python 程序的内存占用？ 网页保存成功！！\n",
      "算法题：把列表右侧 k 位数依次移动到左侧 网页保存成功！！\n",
      "一日一技：在 Python 中接管键盘中断信号 网页保存成功！！\n",
      "一篇文章理解Python异步编程的基本原理 网页保存成功！！\n",
      "一日一技：用二进制翻转26个字母的大小写 网页保存成功！！\n",
      "一日一技：使用上下文管理器来强制关闭 Chromedriver 网页保存成功！！\n",
      "悄悄告诉你，Python 里面有一只小乌龟 网页保存成功！！\n",
      "😚春节快乐😚 网页保存成功！！\n",
      "一日一技：用Python如何正确开发命令行交互程序 网页保存成功！！\n",
      "浅度测评：requests、aiohttp、httpx 我应该用哪一个？ 网页保存成功！！\n",
      "用它5分钟以后，我放弃用了四年的 Flask 网页保存成功！！\n",
      "也许你对 Python GIL 锁的理解是 错的。 网页保存成功！！\n",
      "一日一技：大幅度提高requests的访问速度 网页保存成功！！\n",
      "一日一技：在Linux系统中如何查询正在运行的程序的路径 网页保存成功！！\n",
      "Python 任务自动化工具 tox 教程 网页保存成功！！\n",
      "一日一技：如何用递归函数写出2n - 1 网页保存成功！！\n",
      "一日一技：如何判断n对数字是否完全相等？ 网页保存成功！！\n",
      "一日一技：如何判断某个汉字是不是在字体库中 网页保存成功！！\n",
      "一日一技：实现有过期时间的LRU缓存 网页保存成功！！\n",
      "一日一技：如何统计有多少人安装了 GNE 网页保存成功！！\n",
      "拒绝想当然，不看文档导致GNE 的隐秘 bug 网页保存成功！！\n",
      "一日一技：为什么年代久远的 Python 项目里面那么多默认参数？ 网页保存成功！！\n",
      "GNE v0.1正式发布：4行代码开发新闻网站通用爬虫 网页保存成功！！\n",
      "祝大家元旦快乐 网页保存成功！！\n",
      "一日一技：使用二分法排查正则表达式的异常 网页保存成功！！\n",
      "你经常看到却经常忽视的__init__.py有什么用？ 网页保存成功！！\n",
      "彻底搞懂Python 中的 import 与 from import 网页保存成功！！\n",
      "一日一技：推特时间的格式化方案 网页保存成功！！\n",
      "大家圣诞节快乐 网页保存成功！！\n",
      "不适合做朋友的人有哪些逻辑特征（三） 网页保存成功！！\n",
      "逆向操作，把被压平的字典还原成嵌套字典 网页保存成功！！\n",
      "剖析灵魂，为什么aiohttp默认的写法那么慢？ 网页保存成功！！\n",
      "为 aiohttp 爬虫注入灵魂 网页保存成功！！\n",
      "如何使用Python读写Kafka？ 网页保存成功！！\n",
      "Kafka 里面的信息是如何被消费的？ 网页保存成功！！\n",
      "为什么每一个爬虫工程师都应该学习 Kafka 网页保存成功！！\n",
      "一日一技：不使用 try...except 掩盖一些已知异常 网页保存成功！！\n",
      "一日一技：在 Python 中实现函数重载 网页保存成功！！\n",
      "为什么说语言决定思维方式 网页保存成功！！\n",
      "Redis 列表实现批量弹出数据 网页保存成功！！\n",
      "一日一技：在 Python 里面，如何正确判断两个浮点数相等 网页保存成功！！\n",
      "一日一技：如何从 Redis 的列表中一次性 pop 多条数据？ 网页保存成功！！\n",
      "一日一技：在 Python 里面的常用常量字符串 网页保存成功！！\n",
      "一日一技：在 Python 正则表达式模块中逃跑（escape） 网页保存成功！！\n",
      "距离Python 2死亡还有30天。请大家做好装备，放鞭炮庆祝。 网页保存成功！！\n",
      "一日一技：让你的字典读取不报错 网页保存成功！！\n",
      "一日一技：在ES中如何使用通配符搜索keyword字段 网页保存成功！！\n",
      "一日一技：在 Python 中编写抽象类 网页保存成功！！\n",
      "GNE v0.04版更新，支持提取正文图片与源代码 网页保存成功！！\n",
      "一日一技：如何统计一个数字的二进制值里面有多少个1 网页保存成功！！\n",
      "如何使用 Flupy 构建数据处理管道 网页保存成功！！\n",
      "一日一技：在 Python 中小括号的另类用法 网页保存成功！！\n",
      "天气降温了，大家注意保暖保肝护肝，谨慎加班。 网页保存成功！！\n",
      "一日一技：使用 PPT 进行扣图，让你抛弃 PhotoShop 网页保存成功！！\n",
      "一日一技：在 Python 中像字典一样持久化数据 网页保存成功！！\n",
      "我们避而不谈的事情都像极了我们自己。 网页保存成功！！\n",
      "Bytes 陷阱， Redis 数据类型的一个小坑 网页保存成功！！\n",
      "一日一技：Python 下面最简单的单例模式写法 网页保存成功！！\n",
      "不适合做朋友的人有哪些逻辑特征（二） 网页保存成功！！\n",
      "左手MongoDB右手Redis：MongoDB的聚合查询（四）——联集合查询 网页保存成功！！\n",
      "不适合做朋友的人有哪些逻辑特征（一） 网页保存成功！！\n",
      "深入 Python 解释器源码，我终于搞明白了字符串驻留的原理！ 网页保存成功！！\n",
      "在 Linux 服务器中创建假桌面运行模拟浏览器有头模式 网页保存成功！！\n",
      "比虚拟机更轻量，比 Docker 和 WSL 更简单的 Linux 环境 网页保存成功！！\n",
      "一日一技：如何识别一张图片的格式 网页保存成功！！\n",
      "产品经理生日快乐 网页保存成功！！\n",
      "花了两天，终于把 Python 的 setup.py 给整明白了 网页保存成功！！\n",
      "显隐术：如何阅读由零宽字符写的信息？ 网页保存成功！！\n",
      "a is b 为 True，a == b 一定为 True 吗？ 网页保存成功！！\n",
      "年会抽奖如何用 Python让自己变成天选之子 网页保存成功！！\n",
      "升维打击——算法问题的维度碾压 网页保存成功！！\n",
      "一日一技：如何让 itertools.tee 线程安全 网页保存成功！！\n",
      "一日一技：炸掉你的内存—— itertools.tee 的缺陷 网页保存成功！！\n",
      "一日一技：一个生成器如何当两个用？ 网页保存成功！！\n",
      "产品经理的故事：产品经理拿错了别人的外卖 网页保存成功！！\n",
      "使用 yield 压平多层嵌套字典列表混合数据 网页保存成功！！\n",
      "使用 yield 压平嵌套字典有多简单？ 网页保存成功！！\n",
      "为什么你应该学习 Python 的生成器？ 网页保存成功！！\n",
      "一日一技：如何在Python代码里面调用 pip安装第三方库 网页保存成功！！\n",
      "如何判断一件事情是否值得做 网页保存成功！！\n",
      "为什么滴滴不给你派身边的车？ 网页保存成功！！\n",
      "一日一技：使用 Linux 自带的 logrotate 管理你的所有日志 网页保存成功！！\n",
      "一日一技：如何通过迭代器精简你的代码 网页保存成功！！\n",
      "一日一技：从 Scrapy 学习模块导入技巧 网页保存成功！！\n",
      "一日一技：如何用 Python让自己变成天选之子 网页保存成功！！\n",
      "左手MongoDB右手Redis：MongoDB的聚合查询（三）——拆分数组 网页保存成功！！\n",
      "一日一技：如何正确获取 MongoDB 集合里面的最后一条数据 网页保存成功！！\n",
      "一日一技：你的代码是如何被炫技毁掉的 网页保存成功！！\n",
      "一日一技：在Pymongo中设置连接超时时间 网页保存成功！！\n",
      "一日一技：使用 Locust对网络接口进行压力测试 网页保存成功！！\n",
      "Chome 88如何正确隐藏 webdriver？ 网页保存成功！！\n",
      "隐写术：如何正确保护文章的版权？ 网页保存成功！！\n",
      "一日一技：巧用or关键字实现多重条件判断 网页保存成功！！\n",
      "如何正确保留大括号？ 网页保存成功！！\n",
      "令人震惊的24张图片！现在打开还不晚 网页保存成功！！\n",
      "如何快速从深层嵌套 JSON 中找到特定的 Key 网页保存成功！！\n",
      "偏函数：在Python中设定默认参数的另一种办法 网页保存成功！！\n",
      "一日一技：限制你的Python程序所能使用的最大内存 网页保存成功！！\n",
      "使用倒排索引极速提高字符串搜索效率 网页保存成功！！\n",
      "关于包导入，这三个知识点太多人不知道了 网页保存成功！！\n",
      "左手MongoDB右手Redis：MongoDB 聚合操作（二）——分组操作 网页保存成功！！\n",
      "一日一技：在 Jupyter 中如何自动重新导入特定的 模块？ 网页保存成功！！\n",
      "一日一技：如何更好地理解归并排序？ 网页保存成功！！\n",
      "一日一技：在 Python 里面如何合并多个有序列表并使得结果依然有序？ 网页保存成功！！\n",
      "一日一技：uwsgi默认buffersize太小可能导致问题 网页保存成功！！\n",
      "一日一技：如何在macOS下为Python 3.7安装mysqlclient 网页保存成功！！\n",
      "一日一技：如何为 Pyppeteer 设置带有权限验证的代理？ 网页保存成功！！\n",
      "一日一技：Python写的csv文件，如何让 Excel 双击打开不乱码？ 网页保存成功！！\n",
      "大家中秋节快乐~绘图：产品经理 网页保存成功！！\n",
      "一日一技：如何使用 Python批量读取多个文件 网页保存成功！！\n",
      "一日一技：如何在 Python 里优雅地读取文件特定行 网页保存成功！！\n",
      "关于对GNE中符号密度公式的解释。 网页保存成功！！\n",
      "新闻类网页正文通用抽取器（一）——项目介绍 网页保存成功！！\n",
      "一日一技：MongoDB如何正确中断正在创建的索引 网页保存成功！！\n",
      "一日一技：在 Python 中快速遍历文件 网页保存成功！！\n",
      "一日一技：实现函数调用结果的 LRU 缓存 网页保存成功！！\n",
      "一日一技：快速实现Python 命令行参数 网页保存成功！！\n",
      "一日一技：使用doctest测试Python代码的注释 网页保存成功！！\n",
      "日版的电子设备如何使用国产路由器的5G信号？ 网页保存成功！！\n",
      "一行命令​解锁网易云音乐客户端变灰歌曲 网页保存成功！！\n",
      "4种方法解决MongoDB游标超时的问题 网页保存成功！！\n",
      "使用项目驱动学习编程的诀窍 网页保存成功！！\n",
      "今天给大家推荐一位朋友 网页保存成功！！\n",
      "【翻译】阅读优秀的代码 网页保存成功！！\n",
      "从上海堡垒谈谈为什么烂电影喜欢用流量明星 网页保存成功！！\n",
      "一日一技：XPath『不包含』应该怎么写？ 网页保存成功！！\n",
      "一日一技：隐患——redis-py的blpop可能由于网络波动导致收不到信息 网页保存成功！！\n",
      "一日一技：在Python类里面初始化自己 网页保存成功！！\n",
      "一日一技：在Python里进行排列组合 网页保存成功！！\n",
      "一日一技：如何从多个Jupyter Notebook中找到需要代码段 网页保存成功！！\n",
      "一日一技：从Python源代码里面证明你的猜想 网页保存成功！！\n",
      "密码学小传——凯撒密码的解密起源 网页保存成功！！\n",
      "一日一技：如何把多层嵌套的列表展平 网页保存成功！！\n",
      "一日一技：在Python里面做分数的运算 网页保存成功！！\n",
      "一日一技：Python自带的文档生成模块 网页保存成功！！\n",
      "一日一技：精确限制每一行多少个字符 网页保存成功！！\n",
      "一日一技：一个括号两种意思，正则表达式奇怪的小括号 网页保存成功！！\n",
      "一日一技：在iOS中实现微信的引用消息功能 网页保存成功！！\n",
      "一日一技：如何使用JavaScript移除少数派的付费内容 网页保存成功！！\n",
      "一日一技：Python自带的优先级调度器 网页保存成功！！\n",
      "一日神技：最快30秒写出一个异步加载爬虫 网页保存成功！！\n",
      "一日一技：如何让Django 的app migration重新与数据库同步 网页保存成功！！\n",
      "一日一技：Python里面的--并不是做了除法以后取整 网页保存成功！！\n",
      "一日一技：在Python中实现阿拉伯数字加上中文数字 网页保存成功！！\n",
      "博弈论（七）——隐藏的投票权重 网页保存成功！！\n",
      "为什么Python 3.7以后字典有序并且效率更高？ 网页保存成功！！\n",
      "一日一技：在Python里面实现链式调用 网页保存成功！！\n",
      "ORK父子任务制定的常见误区 网页保存成功！！\n",
      "一日一技：批量转义正则表达式中的特殊符号 网页保存成功！！\n",
      "知其所以然：flask + uwsgi不要nginx，应该怎么写配置文件？ 网页保存成功！！\n",
      "一日一技：跟着Kenneth Reitz大神学习读取类属性的三种方法 网页保存成功！！\n",
      "一日一技：Python的bytes型数据的迭代特征 网页保存成功！！\n",
      "一日一技：小内存使用最小堆从大量数据中寻找最小的N个数 网页保存成功！！\n",
      "一日一技：在Python里面如何获取列表的最大n个元素或最小n个元素？ 网页保存成功！！\n",
      "一日一技：在Python中使用切片对象来对可迭代对象切片 网页保存成功！！\n",
      "一日一技：把webp图片保存为png 网页保存成功！！\n",
      "一日一技：如何正确使用mac的搜索功能 网页保存成功！！\n",
      "一日一技：在Python开发中，如何让Java程序员抓狂 网页保存成功！！\n",
      "一日一技：在Python中双下划线私有方法不能被调用的原理 网页保存成功！！\n",
      "一日一技：从列表中一次性筛选多个指定位置的数据 网页保存成功！！\n",
      "一日一技：修改MongoDB集合中的字段名 网页保存成功！！\n",
      "一日一技：一次性把字符串用多个分隔符分割 网页保存成功！！\n",
      "一日一技：在Python中创建临时文件用于记录临时数据 网页保存成功！！\n",
      "一日一技：在Python中合并字典模块ChainMap的隐藏坑 网页保存成功！！\n",
      "一日一技：包含非hashable元素的列表如何去重并保持顺序？ 网页保存成功！！\n",
      "一日一技：（神技能）Excel如何拆分单元格并自动填充 网页保存成功！！\n",
      "一日一技：手动rotate MongoDB的日志 网页保存成功！！\n",
      "发散性思维（一）——通过变通和联想来解决问题 网页保存成功！！\n",
      "一日一技：Airtest连接多个手机的时候，如何start_app 网页保存成功！！\n",
      "博弈论（七）——坐享其成的产品经理 网页保存成功！！\n",
      "一日一技：不等长度列表的同时迭代 网页保存成功！！\n",
      "一日一技：快速判断一个数属于等间隔范围中的位置 网页保存成功！！\n",
      "分享图片 网页保存成功！！\n",
      "分享图片 网页保存成功！！\n",
      "一日一技：限制你的Python程序所能使用的最大内存 网页保存成功！！\n",
      "一日一技：Python读取包里面的数据文件的三种方法 网页保存成功！！\n",
      "博弈论（六）——产品经理从来不做亏本的博弈 网页保存成功！！\n",
      "一日一技：使用装饰器实现类属性的懒加载 网页保存成功！！\n",
      "修改说辞的重要性 网页保存成功！！\n",
      "一日一技：Python实现有序列表并列排名 网页保存成功！！\n",
      "一日一技：在字符串中批量替换单个字符 网页保存成功！！\n",
      "先找到爱的人，再写出色的代码 网页保存成功！！\n",
      "为什么算法不能真正理解人类的情感 网页保存成功！！\n",
      "一日一技：Python只有文件不存在才能写文件 网页保存成功！！\n",
      "一日一技：在Python中为别人的函数设定默认参数 网页保存成功！！\n",
      "一日一技：在Python中使用过滤函数filter 网页保存成功！！\n",
      "一日一技：在Python中使用reduce 网页保存成功！！\n",
      "我写的代码犯法吗？公益免费的 IT 人法律科普在线直播活动来袭！ 网页保存成功！！\n",
      "软技能：使用四象限法分析一切问题 网页保存成功！！\n",
      "一日一技：如何处理配置文件中的重复值？ 网页保存成功！！\n",
      "一日两计：各种符号转数字与快速获取 IP 网页保存成功！！\n",
      "云原生时代的几个爆论 网页保存成功！！\n",
      "2021元旦快乐 网页保存成功！！\n",
      "知乎最新反爬虫的绕过方案 网页保存成功！！\n",
      "一日一技：如何正确使用 Scrapy 自带的 FilesPipeline？ 网页保存成功！！\n",
      "女神周迅离婚，Python分析国内离婚情况，结果触目惊心！ 网页保存成功！！\n",
      "如何使用微软免费提供的应用服务搭建Python网站？ 网页保存成功！！\n",
      "一日一技：在ES批量插入数据超时时自动重试 网页保存成功！！\n",
      "博弈论（五）——无效的合同 网页保存成功！！\n",
      "一日一技：Python字典设置默认值 网页保存成功！！\n",
      "一日一技：直接在Chrome搜索单词 网页保存成功！！\n",
      "一日一技：使用切片从列表中删除元素 网页保存成功！！\n",
      "博弈论（四）——产品经理绝地求生 网页保存成功！！\n",
      "为什么Python能运行但是PyCharm画红线（二） 网页保存成功！！\n",
      "为什么Python代码能运行但是PyCharm给我画红线？ 网页保存成功！！\n",
      "一日一技：print函数也能写文件 网页保存成功！！\n",
      "一日一技：werkzeug里面的彩蛋 网页保存成功！！\n",
      "左手MongoDB右手Redis：Redis的发布订阅模式 网页保存成功！！\n",
      "一日一技：不用get获取字典中不存在的Key 网页保存成功！！\n",
      "一日一技：在Python里面判断多个变量全部-任意不为空 网页保存成功！！\n",
      "博弈论（三）——产品小姐姐一句话灭了一个岛 网页保存成功！！\n",
      "如何写出你的第一个递归函数？ 网页保存成功！！\n",
      "一日一技：先判断再返回True或False型函数的缩减 网页保存成功！！\n",
      "一日一技：快速判断Python变量是否为多个类型之一 网页保存成功！！\n",
      "使用Redis实现优先级队列和定时任务队列 网页保存成功！！\n",
      "博弈论（二）——枪法最差的产品经理如何战胜枪法最好的工程师 网页保存成功！！\n",
      "一日一技：巧用or关键字实现多重条件判断 网页保存成功！！\n",
      "一日一技：在Python中字符串折行 网页保存成功！！\n",
      "（非常重要）使用Python读写Redis的有序集合 网页保存成功！！\n",
      "博弈论（一）——产品小哥哥的民主妙计 网页保存成功！！\n",
      "alias导致virtualenv异常的分析和解法 网页保存成功！！\n",
      "一日一技：为什么浮点数在计算机中可能不准确？ 网页保存成功！！\n",
      "为什么你需要少看中文技术博客以及如何在Python里面精确四舍五入 网页保存成功！！\n",
      "别瞎说，996真不是囚徒困境 网页保存成功！！\n",
      "一日一技：静音的iPhone放在家里找不到了怎么办？ 网页保存成功！！\n",
      "【Redis实战】快速简单搭建聊天室04——实现页面功能 网页保存成功！！\n",
      "【视频教程】使用Redis列表和Hash表实现任务队列 网页保存成功！！\n",
      "记巴黎往事 网页保存成功！！\n",
      "【Redis实战】快速简单搭建聊天室03——实现登陆功能 网页保存成功！！\n",
      "【一日一技】Django不定项数的“或查询” 网页保存成功！！\n",
      "【Redis实战】快速简单搭建聊天室02——准备工作 网页保存成功！！\n",
      "【一日一技】揭秘字符串的两副“面孔” 网页保存成功！！\n",
      "【一日一技】破译反斜杠数量问题的密码 网页保存成功！！\n",
      "【Redis实战】快速简单搭建聊天室01——效果预览 网页保存成功！！\n",
      "一日一技：enumerate如何从任意数字开始计数 网页保存成功！！\n",
      "一日一技：让emoji表情变消失 网页保存成功！！\n",
      "朝花夕拾——致正在读大学的你 网页保存成功！！\n",
      "算法分析：阿拉伯数字与罗马数字的互相转换 网页保存成功！！\n",
      "一日一技：三种方式让列表首尾相连循环不息？ 网页保存成功！！\n",
      "一日一技：一行代码把包含二元组的列表拆成两个列表 网页保存成功！！\n",
      "一日一技：print大法为什么会浪费你的时间？ 网页保存成功！！\n",
      "一日一技：如何制作好看的代码截图？ 网页保存成功！！\n",
      "提高核心竞争力的秘诀 网页保存成功！！\n",
      "一日一技：4行Python实现抽奖程序 网页保存成功！！\n",
      "数据工程师妹子养成手记——数据库篇 网页保存成功！！\n",
      "知乎最新版模拟登陆详解之fromdata加密 网页保存成功！！\n",
      "一日一技：如何生成今天0点的时间戳 网页保存成功！！\n",
      "分享图片 网页保存成功！！\n",
      "一日一技：如何统计Python函数被调用了几次？ 网页保存成功！！\n",
      "读者投稿：selenium抓取bilibili拜年祭《千里之外》的评论 网页保存成功！！\n",
      "一日一技：如何从Elasticsearch读取极大量的数据 网页保存成功！！\n",
      "一日一技：在Selenium中如何缩放网页（不是窗口） 网页保存成功！！\n",
      "一日一技：为mitmproxy设置上游代理 网页保存成功！！\n",
      "一日一技：如何看待跨部门合作的不配合行为？ 网页保存成功！！\n",
      "一日一技：在对外合作项目中如何沟通 网页保存成功！！\n",
      "一日一技：如何开启Airtest的无线模式？ 网页保存成功！！\n",
      "一日一技：引用计数什么时候+1什么时候-1 网页保存成功！！\n",
      "一日一技：pandas读取多个工作簿 网页保存成功！！\n",
      "使用Airtest超快速开发App爬虫 网页保存成功！！\n",
      "沉痛哀悼于敏先生 网页保存成功！！\n",
      "一日一技：在Python中，如何让用户安全输入密码 网页保存成功！！\n",
      "一日一技：在Redis中，如何使用blpop 网页保存成功！！\n",
      "分享图片 网页保存成功！！\n",
      "一日一技：为什么Python中“2==2&gt;1”结果为True 网页保存成功！！\n",
      "读者投稿：使用redis和mongodb下载小说，并用pytest做测试 网页保存成功！！\n",
      "一日一技：在Python中，如何获得一个函数的名字？ 网页保存成功！！\n",
      "一日一技：二进制减法是如何进行的 网页保存成功！！\n",
      "一日一技：装逼技能，口算二进制转八进制和十六进制 网页保存成功！！\n",
      "一日一技：负长整数如何转换为IPv4地址？ 网页保存成功！！\n",
      "一日一技：IPv4地址和长整数的互相转换 网页保存成功！！\n",
      "一日一技：在Scrapy中，Cookies不能放在Headers里面 网页保存成功！！\n",
      "2018年总结，2019年计划 网页保存成功！！\n",
      "一日一技：在使用关键词云的时候，你需要注意什么？ 网页保存成功！！\n",
      "一日一技：crontab的环境变量注意事项 网页保存成功！！\n",
      "一日一技：为git commit添加默认消息模板 网页保存成功！！\n",
      "粉丝投稿：pipenv 让你的虚拟环境更加funny一点 网页保存成功！！\n",
      "一日一技：为什么不建议使用 time.sleep 实现定时功能？ 网页保存成功！！\n",
      "一日一技：如何写出更稳定的Python 代码？ 网页保存成功！！\n",
      "一日一技：效率提高十倍，Puppeteer 如何启动交互模式？ 网页保存成功！！\n",
      "法律科普活动《我写的代码犯法吗》法律问题征集 网页保存成功！！\n",
      "一日一技：超级便利，Chrome自带的多帐号快捷切换功能。 网页保存成功！！\n",
      "粉丝投稿：如何破解加密 zip 文件的密码 网页保存成功！！\n",
      "粉丝投稿：深度解读SSH免密登录 网页保存成功！！\n",
      "一日一技：pandas 中，如何分组再取 N项？ 网页保存成功！！\n",
      "技术人员注意了！紧急通知：技术英语交流群正式开放！扫码进！ 网页保存成功！！\n",
      "用Redis开发一个聊天室（节选） 网页保存成功！！\n",
      "一日一技：在Ubuntu中更新一个软件 网页保存成功！！\n",
      "一日一技：在Python中，调用对象不存在的方法时自定义提示信息 网页保存成功！！\n",
      "一日一技：新版Tmux开启鼠标模式的方法 网页保存成功！！\n",
      "一日一技：在Python中，定义字符串时候的简单拼接操作 网页保存成功！！\n",
      "一日一技：Docker修改容器的hosts文件 网页保存成功！！\n",
      "一日一技：docker-compose配置文件中的易混淆参数 网页保存成功！！\n",
      "一日一技：MySQL实现一个字段自增N 网页保存成功！！\n",
      "彻底搞懂Scrapy的中间件（三） 网页保存成功！！\n",
      "彻底搞懂Scrapy的中间件（二） 网页保存成功！！\n",
      "彻底搞懂Scrapy的中间件（一） 网页保存成功！！\n",
      "一日一技：使用Python解压zip文件 网页保存成功！！\n",
      "一日一技：Python中实现超级简单的多线程操作 网页保存成功！！\n",
      "一日一技：查看Chrome已经保存的密码 网页保存成功！！\n",
      "一日一技：好用的大纲工具推荐 网页保存成功！！\n",
      "一日一技：判断一个字符串中是不是只含有大小写英文字母和数字 网页保存成功！！\n",
      "一日一技：如何关掉电脑右下角讨厌的弹窗？ 网页保存成功！！\n",
      "一日一技：PyMongo批量插入跳过无效数据 网页保存成功！！\n",
      "一日一技：在ES中统计符合要求的数据个数 网页保存成功！！\n",
      "一日一技：三秒钟插入图片到Markdown中 网页保存成功！！\n",
      "一日一技：在ES中使用类似于in的操作 网页保存成功！！\n",
      "一日一技：用Python反重力 网页保存成功！！\n",
      "一日一技：使用异或操作对数字进行加密解密 网页保存成功！！\n",
      "一日一技：Python同时对多个Key排序 网页保存成功！！\n",
      "一日一技：使用异或寻找孤独的数 网页保存成功！！\n",
      "一日一技：使用栈实现调度场算法 网页保存成功！！\n",
      "一日一技：逆波兰式 网页保存成功！！\n",
      "一日一技：使用十根手指数出1024个数 网页保存成功！！\n",
      "一日一技：Python 3.6以后，字典有序 网页保存成功！！\n",
      "一日一技：在Docker中使用Selenium + Chrome 网页保存成功！！\n",
      "tar压缩时排除特定文件和文件夹 网页保存成功！！\n",
      "查看一个正在运行的Docker容器的启动命令 网页保存成功！！\n",
      "在全新的Ubuntu中安装Python3 环境 网页保存成功！！\n",
      "MongoDB备份有密码的数据库 网页保存成功！！\n",
      "一日一技：使用grep持续监控Log 网页保存成功！！\n",
      "一日一技：Rsync如何使用SSH Key 网页保存成功！！\n",
      "一日一技：使用Rsync从服务器下载数据到本地 网页保存成功！！\n",
      "一日一技：在Python中执行Shell命令并获取返回结果 网页保存成功！！\n",
      "一日一技：在Ubuntu中修改时区 网页保存成功！！\n",
      "一日一技：XPath获取包含特定关键字的元素 网页保存成功！！\n",
      "一日一技：AWS免费换机房 网页保存成功！！\n",
      "一日一技：在Shell中判断一个进程是否存在 网页保存成功！！\n",
      "一日一技：firewalld对特定IP开放特定端口 网页保存成功！！\n",
      "一日一技：在Linux的tree命令中过滤特定文件或者文件夹 网页保存成功！！\n",
      "一日一技：在Linux中统计py文件代码行数 网页保存成功！！\n",
      "一日一技：为pip设置代理 网页保存成功！！\n",
      "如果你不知道做什么，那就学一门杂学吧 网页保存成功！！\n",
      "一日一技：使用Python从URL中获取Host 网页保存成功！！\n",
      "一日一技：为Ubuntu的apt-get设置代理 网页保存成功！！\n",
      "一日一技：在Linux中根据进程名字在Linux里杀进程 网页保存成功！！\n",
      "一日一技：在Python的try...except中显示traceback 网页保存成功！！\n",
      "一日一技：从超大文本中删除特定行 网页保存成功！！\n",
      "一日一技：在Tmux的鼠标模式中如何反选文本并复制？ 网页保存成功！！\n",
      "一日一技：在macOS中如何复制文件路径？ 网页保存成功！！\n",
      "一日一技：通过Python 3的类型标注提高PyCharm的自动补全能力 网页保存成功！！\n",
      "一日一技：在Linux中切分超大文件 网页保存成功！！\n",
      "一日一技：关闭requests的SSL警告 网页保存成功！！\n",
      "一日一技：在Python 3中判断一个集合是不是另一个集合的子集 网页保存成功！！\n",
      "一日一技：在Python 3中，计算两个日期相隔了多少秒 网页保存成功！！\n",
      "一日一技：如何在Vim中粘贴代码？ 网页保存成功！！\n",
      "一日二技：Pandas 与 Docker 的使用技巧 网页保存成功！！\n",
      "通用爬虫技术要点： Dom树的重建 网页保存成功！！\n",
      "腾讯云+社区年度正文又来啦~ 网页保存成功！！\n",
      "一日一技：爬虫如何正确从网页中提取伪元素？ 网页保存成功！！\n",
      "成千上万个站点，日数据过亿的大规模爬虫是怎么实现的？ 网页保存成功！！\n",
      "一日一技：不小心修改了git主分支的代码怎么办？ 网页保存成功！！\n",
      "拿到数据以后，如何进行分析和可视化 网页保存成功！！\n",
      "博弈论与逻辑（九）——万无一失的猜硬币方案 网页保存成功！！\n",
      "最完美方案！模拟浏览器如何正确隐藏特征 网页保存成功！！\n",
      "今天眼睛做了一个手术，记录一下手术过程（内有彩蛋） 网页保存成功！！\n",
      "使用有限状态机原理实现英文分词 网页保存成功！！\n",
      "Tweet-w1705 网页保存成功！！\n",
      "如果我提前起床，闹钟你就别响 网页保存成功！！\n",
      "搭建持续集成环境(一) 网页保存成功！！\n",
      "使用Python来截图 网页保存成功！！\n",
      "别去送死了。Selenium 与 Puppeteer 能被网站探测的几十个特征 网页保存成功！！\n",
      "Ticker Or Sleep？定时执行的新选择 网页保存成功！！\n",
      "为什么权限管理会用124三个数字？ 网页保存成功！！\n",
      "2020年最全的人工智能学习路径！文末领取福利 网页保存成功！！\n",
      "为什么你应该看官方文档而不是搜索博客文章 网页保存成功！！\n",
      "一日一技：在什么情况下使用@property比较好？ 网页保存成功！！\n",
      "为什么继承 Python 内置类型会出问题？！ 网页保存成功！！\n",
      "Python的isinstance在Golang里面叫什么？ 网页保存成功！！\n",
      "为什么 Python 的 Type Hint 没有流行起来 网页保存成功！！\n",
      "一日一技：如何关掉网页的强制登录浮动层？ 网页保存成功！！\n",
      "用Python 通过动态规划完成公务员考试题 网页保存成功！！\n",
      "一个数据爬取和分析系统的演变过程 网页保存成功！！\n",
      "师父给了我一个 .proto 文件，我应该怎么使用？ 网页保存成功！！\n",
      "Python 之父为什么嫌弃 lambda 匿名函数？ 网页保存成功！！\n",
      "一日一技：除了 time.sleep，你还有一个暂停代码的方法 网页保存成功！！\n",
      "一日一技：如何从 URL 中快速提取域名？ 网页保存成功！！\n",
      "为什么说 Python 内置函数并不是万能的？ 网页保存成功！！\n",
      "10月22日晚来 B 站看我直播 网页保存成功！！\n",
      "所有网页保存完毕！！\n"
     ]
    }
   ],
   "source": [
    "# 循环读取 df 中的网址，保存为本地网页\n",
    "def getHtml(url):\n",
    "    html = urllib.request.urlopen(url).read()\n",
    "    return html\n",
    " \n",
    "def saveHtml(file_name, file_content):        \n",
    "    with open(file_name + \".html\", \"wb\") as f:\n",
    "        f.write(file_content)\n",
    "        \n",
    "folder_name = './我的公众号网页'\n",
    "if not os.path.exists(folder_name):\n",
    "    os.makedirs(folder_name)\n",
    "    \n",
    "for url,title in zip(df['网页链接'],df['文章标题']):\n",
    "    file_name = os.path.join(folder_name,title)\n",
    "    html = getHtml(url)\n",
    "    saveHtml(file_name,html)\n",
    "    print(f'{title} 网页保存成功！！')\n",
    "print('所有网页保存完毕！！')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "./我的公众号网页\\10月22日晚来 B 站看我直播.html 网页替换完成！！\n",
      "./我的公众号网页\\2018年总结，2019年计划.html 网页替换完成！！\n",
      "./我的公众号网页\\2020年最全的人工智能学习路径！文末领取福利.html 网页替换完成！！\n",
      "./我的公众号网页\\2020年非科班转行数据分析可行吗？.html 网页替换完成！！\n",
      "./我的公众号网页\\2021元旦快乐.html 网页替换完成！！\n",
      "./我的公众号网页\\4种方法解决MongoDB游标超时的问题.html 网页替换完成！！\n",
      "./我的公众号网页\\a is b 为 True，a == b 一定为 True 吗？.html 网页替换完成！！\n",
      "./我的公众号网页\\alias导致virtualenv异常的分析和解法.html 网页替换完成！！\n",
      "./我的公众号网页\\APP爬虫-frida-某资讯app逆向过程.html 网页替换完成！！\n",
      "./我的公众号网页\\Bug or Feature？藏在 requests_html 中的陷阱.html 网页替换完成！！\n",
      "./我的公众号网页\\Bytes 陷阱， Redis 数据类型的一个小坑.html 网页替换完成！！\n",
      "./我的公众号网页\\Bytes型数据decode时是如何知道要把几位数据组合在一起的？.html 网页替换完成！！\n",
      "./我的公众号网页\\Callback ——从同步思维切换到异步思维.html 网页替换完成！！\n",
      "./我的公众号网页\\Chome 88如何正确隐藏 webdriver？.html 网页替换完成！！\n",
      "./我的公众号网页\\Gne Online：通用新闻网页正文在线提取.html 网页替换完成！！\n",
      "./我的公众号网页\\GNE v0.04版更新，支持提取正文图片与源代码.html 网页替换完成！！\n",
      "./我的公众号网页\\GNE v0.1正式发布：4行代码开发新闻网站通用爬虫.html 网页替换完成！！\n",
      "./我的公众号网页\\JavaScript 混淆与逆向必读之 AST 节点类型名词基础.html 网页替换完成！！\n",
      "./我的公众号网页\\JavaScript 逆向爬取实战.html 网页替换完成！！\n",
      "./我的公众号网页\\JavaScript 逆向爬取实战（下）.html 网页替换完成！！\n",
      "./我的公众号网页\\JS逆向时碰到了恶心的死代码怎么办？手把手教你解决！.html 网页替换完成！！\n",
      "./我的公众号网页\\Kafka 里面的信息是如何被消费的？.html 网页替换完成！！\n",
      "./我的公众号网页\\MongoDB备份有密码的数据库.html 网页替换完成！！\n",
      "./我的公众号网页\\ORK父子任务制定的常见误区.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 3.9 新特性：任意表达式可作为装饰器！.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 为什么不支持 switch 语句？.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 为什么推荐蛇形命名法？.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 为什么没有 main 函数？为什么我不推荐写 main 函数？.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 为什么用 # 号作注释符？.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 之父为什么嫌弃 lambda 匿名函数？.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 任务自动化工具 tox 教程.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 爬虫进阶必备 - 关于某虚拟币网站加密签名的分析（难度0.1）.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 爬虫进阶必备 - 某指数分析平台解密逻辑分析.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 自带异步队列的大坑.html 网页替换完成！！\n",
      "./我的公众号网页\\Python 装饰器装饰类中的方法.html 网页替换完成！！\n",
      "./我的公众号网页\\Python不香吗？他竟然要转行…….html 网页替换完成！！\n",
      "./我的公众号网页\\Python异步与 JavaScript 原生异步有什么区别？.html 网页替换完成！！\n",
      "./我的公众号网页\\Python爬虫进阶必备 - 关于某查猫查询参数的加密逻辑分析.html 网页替换完成！！\n",
      "./我的公众号网页\\Python的isinstance在Golang里面叫什么？.html 网页替换完成！！\n",
      "./我的公众号网页\\Redis 列表实现批量弹出数据.html 网页替换完成！！\n",
      "./我的公众号网页\\tar压缩时排除特定文件和文件夹.html 网页替换完成！！\n",
      "./我的公众号网页\\Ticker Or Sleep？定时执行的新选择.html 网页替换完成！！\n",
      "./我的公众号网页\\Tweet-w1705.html 网页替换完成！！\n",
      "./我的公众号网页\\~与产品经理度过的第二个生日~.html 网页替换完成！！\n",
      "./我的公众号网页\\「故事思维」会导致什么样的认知谬误？.html 网页替换完成！！\n",
      "./我的公众号网页\\【Redis实战】快速简单搭建聊天室01——效果预览.html 网页替换完成！！\n",
      "./我的公众号网页\\【Redis实战】快速简单搭建聊天室02——准备工作.html 网页替换完成！！\n",
      "./我的公众号网页\\【Redis实战】快速简单搭建聊天室03——实现登陆功能.html 网页替换完成！！\n",
      "./我的公众号网页\\【Redis实战】快速简单搭建聊天室04——实现页面功能.html 网页替换完成！！\n",
      "./我的公众号网页\\【一日一技】Django不定项数的“或查询”.html 网页替换完成！！\n",
      "./我的公众号网页\\【一日一技】揭秘字符串的两副“面孔”.html 网页替换完成！！\n",
      "./我的公众号网页\\【一日一技】破译反斜杠数量问题的密码.html 网页替换完成！！\n",
      "./我的公众号网页\\【翻译】阅读优秀的代码.html 网页替换完成！！\n",
      "./我的公众号网页\\【视频教程】使用Redis列表和Hash表实现任务队列.html 网页替换完成！！\n",
      "./我的公众号网页\\一个在交流群里讨论过两轮的问题，答案竟然跟一个 PEP 有关.html 网页替换完成！！\n",
      "./我的公众号网页\\一个数据爬取和分析系统的演变过程.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：4行Python实现抽奖程序.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：6小时速成PhotoShop.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Airtest连接多个手机的时候，如何start_app.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：AWS免费换机房.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：crontab的环境变量注意事项.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：docker-compose配置文件中的易混淆参数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Docker修改容器的hosts文件.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：enumerate如何从任意数字开始计数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：FastAPI如何关闭接口文档？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：firewalld对特定IP开放特定端口.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：IPv4地址和长整数的互相转换.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：loguru 如何把不同的日志写入不同的文件中.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：MongoDB如何正确中断正在创建的索引.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：MySQL实现一个字段自增N.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：pandas 中，如何分组再取 N项？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：pandas读取多个工作簿.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：print函数也能写文件.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：print大法为什么会浪费你的时间？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：pylint除了检查代码风格，还能做这件事情.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：PyMongo批量插入跳过无效数据.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python 3.6以后，字典有序.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python 下面最简单的单例模式写法.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python中实现超级简单的多线程操作.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python写的csv文件，如何让 Excel 双击打开不乱码？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python只有文件不存在才能写文件.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python同时对多个Key排序.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python字典设置默认值.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python实现有序列表并列排名.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python的bytes型数据的迭代特征.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python自带的优先级调度器.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python自带的文档生成模块.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python读取包里面的数据文件的三种方法.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Python里面的--并不是做了除法以后取整.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：Rsync如何使用SSH Key.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：uwsgi默认buffersize太小可能导致问题.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：werkzeug里面的彩蛋.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：XPath『不包含』应该怎么写？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：XPath获取包含特定关键字的元素.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：一个括号两种意思，正则表达式奇怪的小括号.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：一个生成器如何当两个用？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：一次性把字符串用多个分隔符分割.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：一行代码把包含二元组的列表拆成两个列表.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：三种方式让列表首尾相连循环不息？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：三秒钟插入图片到Markdown中.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：不使用 try...except 掩盖一些已知异常.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：不小心修改了git主分支的代码怎么办？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：不用get获取字典中不存在的Key.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：不用游标卡尺，Yaml 格式5分钟入门.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：不等长度列表的同时迭代.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：为 git commit 设置默认模板.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：为 pymongo 的批量插入功能进一步加速.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：为git commit添加默认消息模板.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：为mitmproxy设置上游代理.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：为pip设置代理.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：为Ubuntu的apt-get设置代理.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：为什么Python中“2==2&gt;1”结果为True.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：为什么不建议使用 time.sleep 实现定时功能？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：为什么年代久远的 Python 项目里面那么多默认参数？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：为什么浮点数在计算机中可能不准确？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：二进制减法是如何进行的.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：从 Scrapy 学习模块导入技巧.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：从Python源代码里面证明你的猜想.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：从列表中一次性筛选多个指定位置的数据.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：从超大文本中删除特定行.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：你不知道的PyCharm命令行用法.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：你的代码是如何被炫技毁掉的.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用 Linux 自带的 logrotate 管理你的所有日志.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用 Locust对网络接口进行压力测试.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用 PPT 进行扣图，让你抛弃 PhotoShop.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用doctest测试Python代码的注释.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用grep持续监控Log.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用Python从URL中获取Host.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用Python解压zip文件.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用Rsync从服务器下载数据到本地.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用上下文管理器来强制关闭 Chromedriver.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用二分法排查正则表达式的异常.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用切片从列表中删除元素.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用十根手指数出1024个数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用异或寻找两个孤独的数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用异或寻找孤独的数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用异或操作对数字进行加密解密.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用栈实现调度场算法.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：使用装饰器实现类属性的懒加载.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：修改MongoDB集合中的字段名.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：先判断再返回True或False型函数的缩减.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：关闭requests的SSL警告.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：判断一个字符串中是不是只含有大小写英文字母和数字.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：包含非hashable元素的列表如何去重并保持顺序？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Golang 中如何快速判断字符串是否在一个数组中.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Jupyter 中如何自动重新导入特定的 模块？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 中像字典一样持久化数据.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 中实现函数重载.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 中实现延迟调用.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 中小括号的另类用法.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 中快速遍历文件.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 中接管键盘中断信号.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 中编写抽象类.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 正则表达式模块中逃跑（escape）.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 里面如何合并多个有序列表并使得结果依然有序？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 里面的常用常量字符串.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在 Python 里面，如何正确判断两个浮点数相等.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Docker中使用Selenium + Chrome.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在ES中使用类似于in的操作.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在ES中如何使用通配符搜索keyword字段.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在ES中统计符合要求的数据个数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在ES批量插入数据超时时自动重试.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Golang下如何相对简单地开发爬虫？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在iOS中实现微信的引用消息功能.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Linux中切分超大文件.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Linux中根据进程名字在Linux里杀进程.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Linux中统计py文件代码行数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Linux的tree命令中过滤特定文件或者文件夹.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Linux系统中如何查询正在运行的程序的路径.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在macOS中如何复制文件路径？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Pymongo中设置连接超时时间.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python 3中判断一个集合是不是另一个集合的子集.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python 3中，计算两个日期相隔了多少秒.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python 的线程中运行协程.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中为别人的函数设定默认参数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中使用reduce.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中使用切片对象来对可迭代对象切片.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中使用过滤函数filter.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中创建临时文件用于记录临时数据.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中双下划线私有方法不能被调用的原理.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中合并字典模块ChainMap的隐藏坑.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中字符串折行.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中实现阿拉伯数字加上中文数字.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中执行Shell命令并获取返回结果.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中，如何获得一个函数的名字？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中，如何让用户安全输入密码.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中，定义字符串时候的简单拼接操作.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python中，调用对象不存在的方法时自定义提示信息.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python开发中，如何让Java程序员抓狂.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python的try...except中显示traceback.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python类里面初始化自己.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python里进行排列组合.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python里面做分数的运算.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python里面判断多个变量全部-任意不为空.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python里面如何获取列表的最大n个元素或最小n个元素？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Python里面实现链式调用.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Redis中，如何使用blpop.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Scrapy中，Cookies不能放在Headers里面.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Selenium中如何缩放网页（不是窗口）.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Shell中判断一个进程是否存在.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Tmux的鼠标模式中如何反选文本并复制？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Ubuntu中修改时区.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在Ubuntu中更新一个软件.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在什么情况下使用@property比较好？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在使用关键词云的时候，你需要注意什么？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在字符串中批量替换单个字符.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在对外合作项目中如何沟通.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：在网页上如何获取鼠标当前指向的元素.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：大幅度提高requests的访问速度.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：好用的大纲工具推荐.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何为 Pyppeteer 设置带有权限验证的代理？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何为 Python 基本类型自定义方法？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何从 Redis 的列表中一次性 pop 多条数据？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何从 URL 中快速提取域名？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何从Elasticsearch读取极大量的数据.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何从地址中提取省市区？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何从多个Jupyter Notebook中找到需要代码段.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何使用 Python批量读取多个文件.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何使用JavaScript移除少数派的付费内容.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何使用弱引用优化 Python 程序的内存占用？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何关掉电脑右下角讨厌的弹窗？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何关掉网页的强制登录浮动层？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何写出更稳定的Python 代码？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何判断n对数字是否完全相等？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何判断某个汉字是不是在字体库中.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何制作好看的代码截图？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何在 Python 里优雅地读取文件特定行.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何在macOS下为Python 3.7安装mysqlclient.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何在Python代码里面调用 pip安装第三方库.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何在Vim中粘贴代码？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何处理配置文件中的重复值？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何实现一个轻量插件系统.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何实现可热拔插的插件系统.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何开启Airtest的无线模式？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何手动打乱一个列表.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何找到 MongoDB 占用空间最大的集合？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何把多层嵌套的列表展平.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何更好地理解归并排序？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何正确使用 Scrapy 自带的 FilesPipeline？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何正确使用mac的搜索功能.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何正确获取 MongoDB 集合里面的最后一条数据.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何生成今天0点的时间戳.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何用 Python让自己变成天选之子.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何用递归函数写出2n - 1.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何看待跨部门合作的不配合行为？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何统计Python函数被调用了几次？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何统计一个数字的二进制值里面有多少个1.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何统计有多少人安装了 GNE.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何让 itertools.tee 线程安全.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何让Django 的app migration重新与数据库同步.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何识别一张图片的格式.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何通过迭代器精简你的代码.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何防止 Homebrew 自动升级和自动清理过期程序.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：如何防止微信朋友圈给你定向推送广告.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：实现函数调用结果的 LRU 缓存.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：实现有过期时间的LRU缓存.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：导入父文件夹中的模块并读取当前文件夹内的资源.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：小内存使用最小堆从大量数据中寻找最小的N个数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：巧用or关键字实现多重条件判断.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：引用计数什么时候+1什么时候-1.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：快速判断Python变量是否为多个类型之一.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：快速判断一个数属于等间隔范围中的位置.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：快速实现Python 命令行参数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：手动rotate MongoDB的日志.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：批量转义正则表达式中的特殊符号.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：把webp图片保存为png.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：推特时间的格式化方案.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：效率提高十倍，Puppeteer 如何启动交互模式？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：新版Tmux开启鼠标模式的方法.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：更友好的格式化数据提取方案.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：查看Chrome已经保存的密码.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：炸掉你的内存—— itertools.tee 的缺陷.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：爬虫如何正确从网页中提取伪元素？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：用 Python 如何正确读取资源文件.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：用Python反重力.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：用Python如何正确开发命令行交互程序.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：用二进制翻转26个字母的大小写.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：直接在Chrome搜索单词.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：立竿见影地把你的 Python 代码提速7倍.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：精确限制每一行多少个字符.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：装逼技能，口算二进制转八进制和十六进制.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：装饰器如何装饰异步函数.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：让emoji表情变消失.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：让Python在退出时强制运行一段代码.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：让你的字典读取不报错.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：负长整数如何转换为IPv4地址？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：超级便利，Chrome自带的多帐号快捷切换功能。.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：超级简单搭建更加稳定安全的文件分享服务器.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：跟着Kenneth Reitz大神学习读取类属性的三种方法.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：这个东西能给 Redis 插上火箭.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：这个使用场景，etcd 比 Redis 强。.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：这个数据库用起来刚刚好.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：逆波兰式.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：通过Python 3的类型标注提高PyCharm的自动补全能力.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：限制你的Python程序所能使用的最大内存.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：限定Python函数只能被特定函数调用.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：除了 time.sleep，你还有一个暂停代码的方法.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：隐患——redis-py的blpop可能由于网络波动导致收不到信息.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：静音的iPhone放在家里找不到了怎么办？.html 网页替换完成！！\n",
      "./我的公众号网页\\一日一技：（神技能）Excel如何拆分单元格并自动填充.html 网页替换完成！！\n",
      "./我的公众号网页\\一日两计：各种符号转数字与快速获取 IP.html 网页替换完成！！\n",
      "./我的公众号网页\\一日二技：Pandas 与 Docker 的使用技巧.html 网页替换完成！！\n",
      "./我的公众号网页\\一日神技：最快30秒写出一个异步加载爬虫.html 网页替换完成！！\n",
      "./我的公众号网页\\一篇文章理解Python异步编程的基本原理.html 网页替换完成！！\n",
      "./我的公众号网页\\一行命令​解锁网易云音乐客户端变灰歌曲.html 网页替换完成！！\n",
      "./我的公众号网页\\一起读源码：为什么 loguru 的时间 rotation 不能只精确到天.html 网页替换完成！！\n",
      "./我的公众号网页\\不使用 if-elif 语句，如何优雅地判断某个数字所属的等级？.html 网页替换完成！！\n",
      "./我的公众号网页\\不写 XPath，照样轻轻松松抓取大部分博客.html 网页替换完成！！\n",
      "./我的公众号网页\\不用 JavaScript，纯静态网站如何统计 PV？.html 网页替换完成！！\n",
      "./我的公众号网页\\不看官方文档，这个问题你可能会束手无策.html 网页替换完成！！\n",
      "./我的公众号网页\\不适合做朋友的人有哪些逻辑特征（一）.html 网页替换完成！！\n",
      "./我的公众号网页\\不适合做朋友的人有哪些逻辑特征（三）.html 网页替换完成！！\n",
      "./我的公众号网页\\不适合做朋友的人有哪些逻辑特征（二）.html 网页替换完成！！\n",
      "./我的公众号网页\\为 aiohttp 爬虫注入灵魂.html 网页替换完成！！\n",
      "./我的公众号网页\\为了抓取弹幕，你需要知道的一些二进制数据常识.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么 Python 的 Type Hint 没有流行起来.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么GNE 不做全自动提取列表页的功能.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么Python 3.7以后字典有序并且效率更高？.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么Python代码能运行但是PyCharm给我画红线？.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么Python能运行但是PyCharm画红线（二）.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么你会被限制登录网页版微信？.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么你应该学习 Python 的生成器？.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么你应该看官方文档而不是搜索博客文章.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么你用Scrapy 无法使用 Cookies登录.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么你需要少看中文技术博客以及如何在Python里面精确四舍五入.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么别人不想回答你提的问题？.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么权限管理会用124三个数字？.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么每一个爬虫工程师都应该学习 Kafka.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么滴滴不给你派身边的车？.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么算法不能真正理解人类的情感.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么继承 Python 内置类型会出问题？！.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么说 Python 内置函数并不是万能的？.html 网页替换完成！！\n",
      "./我的公众号网页\\为什么说语言决定思维方式.html 网页替换完成！！\n",
      "./我的公众号网页\\举一反三：三种问题，两个指针，一种方法.html 网页替换完成！！\n",
      "./我的公众号网页\\也许你对 Python GIL 锁的理解是 错的。.html 网页替换完成！！\n",
      "./我的公众号网页\\云原生时代的几个爆论.html 网页替换完成！！\n",
      "./我的公众号网页\\产品经理生日快乐.html 网页替换完成！！\n",
      "./我的公众号网页\\产品经理的故事：产品经理拿错了别人的外卖.html 网页替换完成！！\n",
      "./我的公众号网页\\什么叫做类比，为什么有些 Python 入门教程结构不合理？.html 网页替换完成！！\n",
      "./我的公众号网页\\今天在收拾行李准备离开杭州。休更三天。周日恢复。.html 网页替换完成！！\n",
      "./我的公众号网页\\今天玩了实景剧本杀，配合高级剧本，代入感极强。.html 网页替换完成！！\n",
      "./我的公众号网页\\今天眼睛做了一个手术，记录一下手术过程（内有彩蛋）.html 网页替换完成！！\n",
      "./我的公众号网页\\今天给大家推荐一位朋友.html 网页替换完成！！\n",
      "./我的公众号网页\\今年面试，这类求职者很值钱！.html 网页替换完成！！\n",
      "./我的公众号网页\\今晚休更，明天发文.html 网页替换完成！！\n",
      "./我的公众号网页\\从上海堡垒谈谈为什么烂电影喜欢用流量明星.html 网页替换完成！！\n",
      "./我的公众号网页\\从零开发一个爬虫框架——Tinepeas.html 网页替换完成！！\n",
      "./我的公众号网页\\令人震惊的24张图片！现在打开还不晚.html 网页替换完成！！\n",
      "./我的公众号网页\\以为是高性能神仙算法，一看源代码才发现....html 网页替换完成！！\n",
      "./我的公众号网页\\你经常看到却经常忽视的__init__.py有什么用？.html 网页替换完成！！\n",
      "./我的公众号网页\\使用 yield 压平多层嵌套字典列表混合数据.html 网页替换完成！！\n",
      "./我的公众号网页\\使用 yield 压平嵌套字典有多简单？.html 网页替换完成！！\n",
      "./我的公众号网页\\使用Airtest超快速开发App爬虫.html 网页替换完成！！\n",
      "./我的公众号网页\\使用Python来截图.html 网页替换完成！！\n",
      "./我的公众号网页\\使用Redis实现优先级队列和定时任务队列.html 网页替换完成！！\n",
      "./我的公众号网页\\使用倒排索引极速提高字符串搜索效率.html 网页替换完成！！\n",
      "./我的公众号网页\\使用有限状态机原理实现英文分词.html 网页替换完成！！\n",
      "./我的公众号网页\\使用项目驱动学习编程的诀窍.html 网页替换完成！！\n",
      "./我的公众号网页\\修改说辞的重要性.html 网页替换完成！！\n",
      "./我的公众号网页\\偏函数：在Python中设定默认参数的另一种办法.html 网页替换完成！！\n",
      "./我的公众号网页\\先找到爱的人，再写出色的代码.html 网页替换完成！！\n",
      "./我的公众号网页\\全能的上帝可以造出它举不起来的石头.html 网页替换完成！！\n",
      "./我的公众号网页\\关于《生成器运行时机导致的难以察觉的 bug》勘误.html 网页替换完成！！\n",
      "./我的公众号网页\\关于包导入，这三个知识点太多人不知道了.html 网页替换完成！！\n",
      "./我的公众号网页\\关于对GNE中符号密度公式的解释。.html 网页替换完成！！\n",
      "./我的公众号网页\\分享图片.html 网页替换完成！！\n",
      "./我的公众号网页\\刚刚下班，今天来不及更新了。明天补上。.html 网页替换完成！！\n",
      "./我的公众号网页\\创业的N种死法.html 网页替换完成！！\n",
      "./我的公众号网页\\别去送死了。Selenium 与 Puppeteer 能被网站探测的几十个特征.html 网页替换完成！！\n",
      "./我的公众号网页\\别怕，我们的聊天消息，没人能偷看.html 网页替换完成！！\n",
      "./我的公众号网页\\别瞎说，996真不是囚徒困境.html 网页替换完成！！\n",
      "./我的公众号网页\\剖析灵魂，为什么aiohttp默认的写法那么慢？.html 网页替换完成！！\n",
      "./我的公众号网页\\勘误，昨天文章中的知识性错误.html 网页替换完成！！\n",
      "./我的公众号网页\\化异为同，Python 在背后帮你做的转换.html 网页替换完成！！\n",
      "./我的公众号网页\\升维打击——算法问题的维度碾压.html 网页替换完成！！\n",
      "./我的公众号网页\\博弈论与逻辑（九）——万无一失的猜硬币方案.html 网页替换完成！！\n",
      "./我的公众号网页\\博弈论（一）——产品小哥哥的民主妙计.html 网页替换完成！！\n",
      "./我的公众号网页\\博弈论（七）——坐享其成的产品经理.html 网页替换完成！！\n",
      "./我的公众号网页\\博弈论（七）——隐藏的投票权重.html 网页替换完成！！\n",
      "./我的公众号网页\\博弈论（三）——产品小姐姐一句话灭了一个岛.html 网页替换完成！！\n",
      "./我的公众号网页\\博弈论（二）——枪法最差的产品经理如何战胜枪法最好的工程师.html 网页替换完成！！\n",
      "./我的公众号网页\\博弈论（五）——无效的合同.html 网页替换完成！！\n",
      "./我的公众号网页\\博弈论（六）——产品经理从来不做亏本的博弈.html 网页替换完成！！\n",
      "./我的公众号网页\\博弈论（四）——产品经理绝地求生.html 网页替换完成！！\n",
      "./我的公众号网页\\发散性思维（一）——通过变通和联想来解决问题.html 网页替换完成！！\n",
      "./我的公众号网页\\可能是你见过最好的工程师绘图指北！！！.html 网页替换完成！！\n",
      "./我的公众号网页\\可软可硬——从电路的角度做加法.html 网页替换完成！！\n",
      "./我的公众号网页\\啊撑得一天就吃了这一顿.html 网页替换完成！！\n",
      "./我的公众号网页\\啊～～撑得一天就吃了这一顿～～.html 网页替换完成！！\n",
      "./我的公众号网页\\在 Linux 服务器中创建假桌面运行模拟浏览器有头模式.html 网页替换完成！！\n",
      "./我的公众号网页\\在 Linux-Mac 下为Python函数添加超时时间.html 网页替换完成！！\n",
      "./我的公众号网页\\在 Python 中如何快速创建一个只读字典？.html 网页替换完成！！\n",
      "./我的公众号网页\\在Scrapy中如何使用aiohttp？.html 网页替换完成！！\n",
      "./我的公众号网页\\在全新的Ubuntu中安装Python3 环境.html 网页替换完成！！\n",
      "./我的公众号网页\\大家七夕快乐.html 网页替换完成！！\n",
      "./我的公众号网页\\大家中秋节快乐~绘图：产品经理.html 网页替换完成！！\n",
      "./我的公众号网页\\大家圣诞节快乐.html 网页替换完成！！\n",
      "./我的公众号网页\\大家情人节快乐快去过节吧.html 网页替换完成！！\n",
      "./我的公众号网页\\天气降温了，大家注意保暖保肝护肝，谨慎加班。.html 网页替换完成！！\n",
      "./我的公众号网页\\奇技淫巧：在 ssh 里面把服务器的文本复制到本地电脑.html 网页替换完成！！\n",
      "./我的公众号网页\\女神周迅离婚，Python分析国内离婚情况，结果触目惊心！.html 网页替换完成！！\n",
      "./我的公众号网页\\如何使用 Flupy 构建数据处理管道.html 网页替换完成！！\n",
      "./我的公众号网页\\如何使用Python读写Kafka？.html 网页替换完成！！\n",
      "./我的公众号网页\\如何使用微软免费提供的应用服务搭建Python网站？.html 网页替换完成！！\n",
      "./我的公众号网页\\如何使用闭包进行一次降维打击？.html 网页替换完成！！\n",
      "./我的公众号网页\\如何写出你的第一个递归函数？.html 网页替换完成！！\n",
      "./我的公众号网页\\如何判断一件事情是否值得做.html 网页替换完成！！\n",
      "./我的公众号网页\\如何实时主动监控你的网站接口是否挂掉并及时报警.html 网页替换完成！！\n",
      "./我的公众号网页\\如何快速从深层嵌套 JSON 中找到特定的 Key.html 网页替换完成！！\n",
      "./我的公众号网页\\如何改造 Scrapy 从而实现多网站大规模爬取？.html 网页替换完成！！\n",
      "./我的公众号网页\\如何根据二叉树的两种遍历方式重建二叉树（理论篇）.html 网页替换完成！！\n",
      "./我的公众号网页\\如何正确保留大括号？.html 网页替换完成！！\n",
      "./我的公众号网页\\如何用数据讲生动的故事.html 网页替换完成！！\n",
      "./我的公众号网页\\如何用简单的位操作实现高级算法.html 网页替换完成！！\n",
      "./我的公众号网页\\如何给产品经理解释什么是 RSA 加密（一）.html 网页替换完成！！\n",
      "./我的公众号网页\\如何给产品经理解释什么是 RSA 加密（二）.html 网页替换完成！！\n",
      "./我的公众号网页\\如果你不知道做什么，那就学一门杂学吧.html 网页替换完成！！\n",
      "./我的公众号网页\\如果我提前起床，闹钟你就别响.html 网页替换完成！！\n",
      "./我的公众号网页\\密码学小传——凯撒密码的解密起源.html 网页替换完成！！\n",
      "./我的公众号网页\\左手MongoDB右手Redis：MongoDB 聚合操作（二）——分组操作.html 网页替换完成！！\n",
      "./我的公众号网页\\左手MongoDB右手Redis：MongoDB的聚合查询（三）——拆分数组.html 网页替换完成！！\n",
      "./我的公众号网页\\左手MongoDB右手Redis：MongoDB的聚合查询（四）——联集合查询.html 网页替换完成！！\n",
      "./我的公众号网页\\左手MongoDB右手Redis：Redis的发布订阅模式.html 网页替换完成！！\n",
      "./我的公众号网页\\师父给了我一个 .proto 文件，我应该怎么使用？.html 网页替换完成！！\n",
      "./我的公众号网页\\年会抽奖如何用 Python让自己变成天选之子.html 网页替换完成！！\n",
      "./我的公众号网页\\康熙部首导致的字典查询异常.html 网页替换完成！！\n",
      "./我的公众号网页\\开发经验：如何正确设置开发环境与生产环境的配置参数.html 网页替换完成！！\n",
      "./我的公众号网页\\彻底搞懂Python 中的 import 与 from import.html 网页替换完成！！\n",
      "./我的公众号网页\\彻底搞懂Scrapy的中间件（一）.html 网页替换完成！！\n",
      "./我的公众号网页\\彻底搞懂Scrapy的中间件（三）.html 网页替换完成！！\n",
      "./我的公众号网页\\彻底搞懂Scrapy的中间件（二）.html 网页替换完成！！\n",
      "./我的公众号网页\\悄悄告诉你，Python 里面有一只小乌龟.html 网页替换完成！！\n",
      "./我的公众号网页\\惊呆了，我的 Python 代码里面出现了薛定谔的 Bug.html 网页替换完成！！\n",
      "./我的公众号网页\\成千上万个站点，日数据过亿的大规模爬虫是怎么实现的？.html 网页替换完成！！\n",
      "./我的公众号网页\\我为什么要创建一个不能被实例化的类.html 网页替换完成！！\n",
      "./我的公众号网页\\我们避而不谈的事情都像极了我们自己。.html 网页替换完成！！\n",
      "./我的公众号网页\\我写的代码犯法吗？公益免费的 IT 人法律科普在线直播活动来袭！.html 网页替换完成！！\n",
      "./我的公众号网页\\我这几年踩过的十个坑，每一条都是血泪教训.html 网页替换完成！！\n",
      "./我的公众号网页\\手把手教学，如何解决 git 冲突？.html 网页替换完成！！\n",
      "./我的公众号网页\\技术人员注意了！紧急通知：技术英语交流群正式开放！扫码进！.html 网页替换完成！！\n",
      "./我的公众号网页\\拒绝想当然，不看文档导致GNE 的隐秘 bug.html 网页替换完成！！\n",
      "./我的公众号网页\\拿到数据以后，如何进行分析和可视化.html 网页替换完成！！\n",
      "./我的公众号网页\\提速72倍，在Python里面调用Golang函数.html 网页替换完成！！\n",
      "./我的公众号网页\\提高核心竞争力的秘诀.html 网页替换完成！！\n",
      "./我的公众号网页\\搭建持续集成环境(一).html 网页替换完成！！\n",
      "./我的公众号网页\\数据工程师妹子养成手记——数据库篇.html 网页替换完成！！\n",
      "./我的公众号网页\\新闻类网页正文通用抽取器（一）——项目介绍.html 网页替换完成！！\n",
      "./我的公众号网页\\日版的电子设备如何使用国产路由器的5G信号？.html 网页替换完成！！\n",
      "./我的公众号网页\\显隐术：如何阅读由零宽字符写的信息？.html 网页替换完成！！\n",
      "./我的公众号网页\\最完美方案！模拟浏览器如何正确隐藏特征.html 网页替换完成！！\n",
      "./我的公众号网页\\朝花夕拾——致正在读大学的你.html 网页替换完成！！\n",
      "./我的公众号网页\\来了来了评上了2020-2021年度微软MVP。据说全国只有150多人。.html 网页替换完成！！\n",
      "./我的公众号网页\\来了来了～评上了2020-2021年度微软MVP。据说全国只有150多人。.html 网页替换完成！！\n",
      "./我的公众号网页\\查看一个正在运行的Docker容器的启动命令.html 网页替换完成！！\n",
      "./我的公众号网页\\比虚拟机更轻量，比 Docker 和 WSL 更简单的 Linux 环境.html 网页替换完成！！\n",
      "./我的公众号网页\\沉痛哀悼于敏先生.html 网页替换完成！！\n",
      "./我的公众号网页\\法律科普活动《我写的代码犯法吗》法律问题征集.html 网页替换完成！！\n",
      "./我的公众号网页\\浅度测评：requests、aiohttp、httpx 我应该用哪一个？.html 网页替换完成！！\n",
      "./我的公众号网页\\深入 Python 解释器源码，我终于搞明白了字符串驻留的原理！.html 网页替换完成！！\n",
      "./我的公众号网页\\爬虫工程师也应该会的 NodeJS 知识（三）- 快速抛弃 execjs.html 网页替换完成！！\n",
      "./我的公众号网页\\现场打脸：如何使用Selenium批量上传文件？.html 网页替换完成！！\n",
      "./我的公众号网页\\用Python 通过动态规划完成公务员考试题.html 网页替换完成！！\n",
      "./我的公众号网页\\用Python的Plotly画出炫酷的数据可视化(含各类图介绍).html 网页替换完成！！\n",
      "./我的公众号网页\\用Redis开发一个聊天室（节选）.html 网页替换完成！！\n",
      "./我的公众号网页\\用个小技巧，趁你不备，rm -rf你的电脑.html 网页替换完成！！\n",
      "./我的公众号网页\\用它5分钟以后，我放弃用了四年的 Flask.html 网页替换完成！！\n",
      "./我的公众号网页\\知乎最新反爬虫的绕过方案.html 网页替换完成！！\n",
      "./我的公众号网页\\知乎最新版模拟登陆详解之fromdata加密.html 网页替换完成！！\n",
      "./我的公众号网页\\知其所以然：flask + uwsgi不要nginx，应该怎么写配置文件？.html 网页替换完成！！\n",
      "./我的公众号网页\\祝大家元旦快乐.html 网页替换完成！！\n",
      "./我的公众号网页\\等一等，你的多线程可别再乱 join 了。.html 网页替换完成！！\n",
      "./我的公众号网页\\算法分析：阿拉伯数字与罗马数字的互相转换.html 网页替换完成！！\n",
      "./我的公众号网页\\算法题：把列表右侧 k 位数依次移动到左侧.html 网页替换完成！！\n",
      "./我的公众号网页\\粉丝投稿：pipenv 让你的虚拟环境更加funny一点.html 网页替换完成！！\n",
      "./我的公众号网页\\粉丝投稿：如何破解加密 zip 文件的密码.html 网页替换完成！！\n",
      "./我的公众号网页\\粉丝投稿：深度解读SSH免密登录.html 网页替换完成！！\n",
      "./我的公众号网页\\给 Python 初学者解答了无数遍的 Python 环境相关问题.html 网页替换完成！！\n",
      "./我的公众号网页\\老婆大人生日快乐老婆大人天下第一.html 网页替换完成！！\n",
      "./我的公众号网页\\肝了三天，万字长文教你玩转 tcpdump，从此抓包不用愁.html 网页替换完成！！\n",
      "./我的公众号网页\\脱离苦海，从避免滥用try...except...开始.html 网页替换完成！！\n",
      "./我的公众号网页\\腾讯云+社区年度正文又来啦~.html 网页替换完成！！\n",
      "./我的公众号网页\\花了两天，终于把 Python 的 setup.py 给整明白了.html 网页替换完成！！\n",
      "./我的公众号网页\\记巴黎往事.html 网页替换完成！！\n",
      "./我的公众号网页\\读者投稿：selenium抓取bilibili拜年祭《千里之外》的评论.html 网页替换完成！！\n",
      "./我的公众号网页\\读者投稿：使用redis和mongodb下载小说，并用pytest做测试.html 网页替换完成！！\n",
      "./我的公众号网页\\越早知道越好的决策陷阱.html 网页替换完成！！\n",
      "./我的公众号网页\\距离Python 2死亡还有30天。请大家做好装备，放鞭炮庆祝。.html 网页替换完成！！\n",
      "./我的公众号网页\\跟肉丝姐学 Frida 之 快速搭建 Frida 安卓逆向环境.html 网页替换完成！！\n",
      "./我的公众号网页\\软技能：使用四象限法分析一切问题.html 网页替换完成！！\n",
      "./我的公众号网页\\这两周太忙了，公众号更新得有点水。明天就有时间正经更新一篇了。.html 网页替换完成！！\n",
      "./我的公众号网页\\这个 Python 知识点，90% 的人都得挂~.html 网页替换完成！！\n",
      "./我的公众号网页\\这样的奇技淫巧，劝你不用也罢.html 网页替换完成！！\n",
      "./我的公众号网页\\进一步防止 Selenium 被检测——如何防止浏览器用新标签页打开链接？.html 网页替换完成！！\n",
      "./我的公众号网页\\逆向操作，把被压平的字典还原成嵌套字典.html 网页替换完成！！\n",
      "./我的公众号网页\\逆转时间，起死回生——程序报错崩溃后，如何倒回到崩溃的位置？.html 网页替换完成！！\n",
      "./我的公众号网页\\通用爬虫技术要点： Dom树的重建.html 网页替换完成！！\n",
      "./我的公众号网页\\隐写术：如何正确保护文章的版权？.html 网页替换完成！！\n",
      "./我的公众号网页\\😚春节快乐😚.html 网页替换完成！！\n",
      "./我的公众号网页\\（非常重要）使用Python读写Redis的有序集合.html 网页替换完成！！\n",
      "./我的公众号网页\\～今晚休更，明天发文～.html 网页替换完成！！\n",
      "./我的公众号网页\\～大家七夕快乐～.html 网页替换完成！！\n",
      "./我的公众号网页\\～大家情人节快乐～快去过节吧～.html 网页替换完成！！\n",
      "所有网页替换完成！！\n"
     ]
    }
   ],
   "source": [
    "#读取文件\n",
    "def ReadFile(filepath):\n",
    "    with open(filepath, 'r', encoding='utf-8') as f:\n",
    "        all_the_text = f.read()\n",
    "    return all_the_text\n",
    "\n",
    "#定义一个保存文件的函数\n",
    "def SaveFile(fpath,fileContent):\n",
    "    with open(fpath, 'w', encoding='utf-8') as f:\n",
    "            f.write(fileContent)\n",
    "\n",
    "#修改网页中图片的src，使图片能正常显示\n",
    "def ChangeImgSrc(htmlsource):\n",
    "    bs = BeautifulSoup(htmlsource,\"lxml\") #由网页源代码生成BeautifulSoup对象，第二个参数固定为lxml\n",
    "    imgList = bs.findAll(\"img\") #找出网页中所有的<img 标签\n",
    "    for img in imgList:\n",
    "        originalURL = \"\"  # 定义一个变量保存图片真实url\n",
    "        if \"data-src\" in img.attrs: #防止有的<img 标签中可能没有data-src而出错\n",
    "            originalURL = img.attrs['data-src']\n",
    "        elif \"src\" in img.attrs: #如果有src则提取出来\n",
    "            originalURL = img.attrs['src']\n",
    "        else:\n",
    "            originalURL = \"\"\n",
    "        if originalURL.startswith(\"//\"):#如果url以//开始，则需要添加http：\n",
    "            originalURL = \"http:\" + originalURL\n",
    "        img.attrs[\"src\"] = originalURL\n",
    "    return str(bs) #将BeautifulSoup对象再置换为字符串，用于保存\n",
    "\n",
    "\n",
    "folder_path = './我的公众号网页'\n",
    "file_form = '*.html'\n",
    "files_name = os.path.join(folder_path,file_form)\n",
    "all_files = glob.glob(files_name)\n",
    "\n",
    "    \n",
    "for file in all_files:\n",
    "    htmlstr = ReadFile(file)\n",
    "    htmlstr = ChangeImgSrc(htmlstr)\n",
    "    SaveFile(file,htmlstr)\n",
    "    print(f'{file} 网页替换完成！！')\n",
    "print('所有网页替换完成！！')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 循环读取 df 中的网址，对网页进行 PDF 转化\n",
    "folder_name = './我的公众号PDF'\n",
    "\n",
    "if not os.path.exists(folder_name):\n",
    "    os.makedirs(folder_name)\n",
    "    \n",
    "config = pdfkit.configuration(wkhtmltopdf=r'D:\\software\\wkhtmltopdf\\bin\\wkhtmltopdf.exe')\n",
    "wkhtmltopdf_options = {'enable-local-file-access': None,'quiet': ''}\n",
    "\n",
    "for url,title in zip(df['网页链接'],df['文章标题']):\n",
    "    format_name = title + '.pdf'\n",
    "    file_name = os.path.join(folder_name,format_name)\n",
    "    pdfkit.from_url(url,file_name,configuration=config)\n",
    "print('生成 PDF 文件成功！！')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 循环读取 df 中的网址，对网页进行图片转化\n",
    "folder_name = './我的公众号图片'\n",
    "\n",
    "if not os.path.exists(folder_name):\n",
    "    os.makedirs(folder_name)\n",
    "    \n",
    "config = imgkit.config(wkhtmltoimage=r'D:\\software\\wkhtmltopdf\\bin\\wkhtmltoimage.exe')\n",
    "# wkhtmltopdf_options = {'enable-local-file-access': None}\n",
    "options = {\"encoding\": \"UTF-8\",'quiet': ''}\n",
    "\n",
    "for url,title in zip(df['网页链接'],df['文章标题']):\n",
    "    format_name = title + '.jpg'\n",
    "    file_name = os.path.join(folder_name,format_name)\n",
    "    imgkit.from_url(url,file_name,config=config,options=options)\n",
    "print('生成图片成功！！')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
